Mosaic Plot

Analysis of categorical breakdown by Carb and bio


library(foreign)
library(magrittr)
library(tidyverse)
library(ggmosaic)
library(janitor)
library(plotly)

Import Data

myData <- read.dbf("TalamhPrescriptions_forVisualisation.dbf")
head(myData)
##     comsub gis_area      bio_opt rec_opt sppdiv_opt    carb_opt   TalamhOpt
## 1  27958W6     2.12 standardmgmt    <NA>       <NA> NOTHIN_MMAI NOTHIN_MMAI
## 2  71702H1    13.09          CCF    <NA>       <NA> NOTHIN_MMAI         CCF
## 3  35459N2     0.52     bioclass    <NA>       <NA>      RETAIN    bioclass
## 4  35472N2     3.39 standardmgmt    <NA>       <NA> NOTHIN_MMAI NOTHIN_MMAI
## 5  71024L1     1.72 standardmgmt    <NA>       <NA> NOTHIN_MMAI NOTHIN_MMAI
## 6 66294Q19     2.66 standardmgmt    <NA>       <NA> NOTHIN_MMAI NOTHIN_MMAI

Summary Data

Generate Summary Table

myData.Report <- myData %>% group_by(bio_opt,  carb_opt) %>% summarize( GIS_AREA  = sum(gis_area) )
## `summarise()` has grouped output by 'bio_opt'. You can override using the `.groups` argument.
# Overlapping Objectives

myData.Report <- myData.Report %>% mutate(OverLap = "No-Overlap")

myData.Report$OverLap[ as.character(myData.Report$bio_opt)== as.character(myData.Report$carb_opt)] = as.character(myData.Report$bio_opt)[ as.character(myData.Report$bio_opt)== as.character(myData.Report$carb_opt)]

Condense Categories

myData.Report$bio_opt <- as.character(myData.Report$bio_opt)
myData.Report$bio_opt[myData.Report$bio_opt %in% c("4YearGreenUp","4YearGreenUp_catch","standardmgmt")] = "NOTHIN_MMAI"

myData.Report$carb_opt <- factor(myData.Report$carb_opt,levels = c("NOTHIN_MMAI","CONV_TO_SNW","RETAIN","CONV_TO_SNW_MINERAL","REWET"))

myData.Report %>% tabyl(bio_opt)
##        bio_opt  n    percent
##       bioclass  5 0.16666667
##            CCF  5 0.16666667
##    NOTHIN_MMAI 14 0.46666667
##  RestoreRewild  5 0.16666667
##         RETAIN  1 0.03333333

Plot Outputs

plotly mosaic plot

p <- myData.Report  %>% mutate( bio_opt =  as.character(bio_opt),
                     carb_opt = as.character(carb_opt)) %>% 
  ggplot() +
  geom_mosaic(aes(weight=GIS_AREA, x = product(carb_opt),  fill =  bio_opt  )) +
  scale_fill_manual(values=c("#29ACB1","#285236","#8DBF5A","#1E5631","#19FCA1","#BC21A6")) + 
  theme(  panel.background = element_rect(fill = "white",
                                          colour = "white",
                                          size = 0.5, linetype = "solid"),
          panel.grid.major = element_line(size = 0.5, linetype = 'solid',
                                          colour = "white"), 
          panel.grid.minor = element_line(size = 0.25, linetype = 'solid',
                                          colour = "white"),
          axis.text.x = element_text(angle = 45),
          axis.text = element_text(face="bold"),
          axis.title = element_text(size = 18),
          plot.title = element_text(size = 24)) +
  xlab("Carbon") + ylab("Bio option") + 
  ggtitle("Project Talamh")
ggplotly(p,tooltip="text")

heatmap

myData.Report %>% filter(OverLap=="No-Overlap") %>% mutate( bio_opt =  as.character(bio_opt),
                                                            carb_opt = as.character(carb_opt)) %>%  ggplot( aes(x=bio_opt, y=carb_opt)) +
  geom_tile(aes(fill = GIS_AREA))+
  scale_fill_distiller(palette = "YlGn") +
  labs(title = "HeatMap",
       y = "GIS AREA") + theme_bw()

Barchart 1

ggplot(data=myData.Report, aes(x=OverLap, y=GIS_AREA, fill=OverLap)) +
  geom_bar(stat="identity")

Barchart 2

ggplot(data=myData.Report, aes(x=carb_opt, y=GIS_AREA, fill=bio_opt)) +
  geom_bar(stat="identity")